//  UIButton (ImageAlign).m
//  CharonTVProject
//
//  Created by karong on 2023/6/6.

#import <UIKit/UIKit.h>


/* 针对同時设置了Image和Title的场景時UIButton中的圖片和文字的關系 */
typedef NS_ENUM(NSInteger, WSButtonImageTitleStyle ) {
    WSButtonImageTitleStyleDefault      = 0,     //圖片在左，文字在右，整体居中。
    WSButtonImageTitleStyleLeft         = 0,     //圖片在左，文字在右，整体居中。
    WSButtonImageTitleStyleRight        = 2,     //圖片在右，文字在左，整体居中。
    WSButtonImageTitleStyleTop          = 3,     //圖片在上，文字在下，整体居中。
    WSButtonImageTitleStyleBottom       = 4,     //圖片在下，文字在上，整体居中。
    WSButtonImageTitleStyleCenterTop    = 5,     //圖片居中，文字在上距离按钮顶部。
    WSButtonImageTitleStyleCenterBottom = 6,     //圖片居中，文字在下距离按钮底部。
    WSButtonImageTitleStyleCenterUp     = 7,     //圖片居中，文字在圖片上面。
    WSButtonImageTitleStyleCenterDown   = 8,     //圖片居中，文字在圖片下面。
    WSButtonImageTitleStyleRightLeft    = 9,     //圖片在右，文字在左，距离按钮两边邊距
    WSButtonImageTitleStyleLeftRight    = 10,    //圖片在左，文字在右，距离按钮两边邊距
};

typedef NS_ENUM(NSUInteger, WSButtonImageAlign) {
    WSButtonImageAlignDefault = 0, // 圖片在左邊
    WSButtonImageAlignTop = 1, // 上
    WSButtonImageAlignRight = 2, // 右
    WSButtonImageAlignBottom = 3 // 下
};

@interface UIButton (ImageAlign)

@property (nonatomic, assign) WSButtonImageAlign imageAlign;
@property (nonatomic, assign) CGFloat offset;

/*
 調整按钮的文本和image的布局，前提是title和image同時存在才會調整。
 padding是調整布局時整个按钮和圖文的間隔。
 */
- (void)setButtonImageTitleStyle:(WSButtonImageTitleStyle)style padding:(CGFloat)padding;

- (void)setButtonTitle:(UIEdgeInsets (^)(CGRect titleRect, CGRect imageRect))titleBlock image:(UIEdgeInsets (^)(CGRect titleRect, CGRect imageRect))imageBlock;

@end
